TTo time execution of a windows program (or programs). The output is a symbolic listing of the relative amount of time spent in each module of the Windows system. When symbol files are given, a list üof time spent in each procedure is also included.
BSB200
CW12
CFT5
T Options:
CFT0
T
BSB200
CW11
CR1
CFJ1
CFT9
T-t
CFT0
TThis flag should be followed by a number. This number specifies the number of milliseconds that will elapse between each sample. The default value is 100mS. If it is set lower then the overhead of running WINET will be correspondingly higher, also some of the count values may overflow sooner. N.B. The system will actually run with -t1 specified but the count fields may overflow in just over a minute.
BSB200
CW11
CR1
CFJ1
CFT9
T-o
CFT0
TThis flag should be followed by the filename to use for output. e.g. WINET -oRESULTS.WETThe default is to write the output to the standard output.
BSB200
CW11
CR1
CFJ1
CFT9
T-x
CFT0
TBy default WINET will invoke the command 'WIN'. If this is not your command to run windows you should specify a different command. e.g. For the slowboot version of windows you must say: WINET -xKERNEL
BSB200
CW11
CR1
CFJ1
CFT9
T-?
CFT0
TPrints a summary of arguments.
BSB200
CW11
CR1
CFJ1
CFT9
Tsymfiles
CFT0
TAny number of symbol files may be specified following the other options. Each symbol file must have the extension '.SYM'. If the symbol file is not in the current directory the PATH variable will be searched for it. This makes it easier to specify the system symbol files KERNEL, USER and GDI.
BSB200
CW11
CR1
CFJ1
CFT9
Targuments
CFT0
TAny remaining arguments will be passed to WIN.COM (or other program if -x is used).
BM12
BSB200
CFT9
T Description:
BSB200
CFT0
TWINET loads addresses of procedures from the specified symbol files. It then invokes WIN.COM. To Windows, WINET looks like SYMDEB so it is able to keep track of where each module is loaded in memory.
BSB200
CFT0
TThe AT's event timer is used to provide an interrupt source every millisecond. Most of these interrupts are ignored, but at the specified interval, an interrupt will be processed.
BSB200
CFT0
TThe current code segment when the interrupt was generated is compared against the known segments. If it matches then the hit count for that segment will be incremented. If the segment also has symbolic information, then a count for the nearest symbol less than or equal in value to the saved program counter will also be incremented.
BSB200
CFT0
TA count is also kept for all interrupts which do not match any of the known segments. This is output as though it had occurred in a segment called 'Others'.
BSB200
CFT0
TSome dummy segments are maintained. *BIOS* counts all hits with CS=F000, *DOS* counts all hits with CS=0070 and *EGA* counts all hits with CS=C000.
BSB200
CFT0
TWhen windows exits the collected data will be output to the specified file. This is in two parts - the segment information, then the procedure information (if any). There is also a header which gives the total number of hits for that session.
BSB200
CFT0
TFor each segment or symbol the number of hits, the percentage é0
S
Thits / totalhits * 100
é and the name of the segment or symbol are output. The results are not sorted, nor is there any form of graphic output. If either of these are desired then it should be possible to process the output file quite easily using 'scanf'.
BSB200
CFT0
TOnly non-zero counts are displayed.
BM12
BSB200
CFT5
T Bugs and limitations:
BM12
BSB200
CFT5
TThis program requires an IBM AT or close compatible.
BM12
BSB200
CFT5
TIt has been tested on Microsoft Windows v1.03 (Debugging version) and symbol files produced by MAPSYM v3.10. Other versions may produce unpredictable results. WARNING: This program depends heavily on undocumented features of the aforementioned products.
BSB200
CFT0
TIf any count is reaches 65535 then it will not be incremented further. Other counts may continue to be incremented. In this case the final results produced should be treated with caution.
BSB200
CFT0
TOnly the first 16 modules encountered are used - subsequent module definitions will be ignored. Only the first 256 segments will be used. Segments and modules are defined in the order: Symbol file segments, dummy segments, KERNEL, and other internal windows modules, user programs.
BSB200
CFT0
TThe profile is generated using a clock interrupt. Routines which run with interrupts disabled or interrupt service routines will distort the final results. Routines synchronised to such interrupts may also give anomalous results. Results will vary from run to run.
BSB200
CFT0
TThe output may sometimes imply that a lot of time was spent executing a random variable in a program's data segment (DGROUP). e.g. It prints a reference to a symbol MYPROG!DGROUP:Avariable. Time executing segments marked as data is almost invariably produced by the EGA screen driver. This device driver compiles code onto the stack and then executes it. This execution time should really be counted as part of the time in a device driver é0
S
TOf course, your program might really execute its data!
é.
*E
Distributed by Public (software) Library.
For a catalog of more than 2000 disks of pd/shareware, call 1-800-2424-PSL
or write Public (software) Library, P.O.Box 35705, Houston, TX 77235-5705.